Networks are collections of independent computers which can communicate with one another over a shared medium. Prior to the development of networking technology, individual machines were isolated and limited in their range of applications.
Local area networks (LANs) are those networks usually confined to a small geographic area, such as a single building or a college campus. LANs are not necessarily simple in design, however, as they may link many hundreds of systems and service many thousands of users. The development of various standards for networking protocols and media has made possible the proliferation of LANs worldwide for business and educational applications.
Network protocols are standards that allow computers to communicate. A typical protocol defines how computers should identify one another on a network, the form that the data should take in transit, and how this information should be processed once it reaches its final destination. Protocols also define procedures for handling lost or damaged transmissions or “packets.” IPX, TCP/IP, DECnet, AppleTalk and LAT are examples of network protocols.
Although each network protocol is different, they all use the physical cabling in the same manner. This common method of accessing the physical network allows multiple protocols to peacefully coexist, and allows the builder of a network to use common hardware for a variety of protocols. This concept is known as “protocol independence,” meaning that the physical network does not need to concern itself with the protocols being carried.
Ethernet is the most popular LAN technology in use today. Other LAN types include Token Ring, Fiber Distributed Data Interface (FDDI), and LocalTalk. Each has its own advantages and disadvantages. Ethernet strikes a good balance between speed, price and ease of installation. These strong points, combined with wide acceptance into the computer marketplace and the ability to support virtually all popular network protocols makes Ethernet a very desirable networking technology for most computer users today.
The Ethernet standard is defined by the Institute for Electrical and Electronic Engineers (IEEE). IEEE Standard 802.3 defines rules for configuring an Ethernet as well as specifying how elements in a network interact with one another. Networks, equipment and network protocols that utilize and adhere to the IEEE standard will operate in the most efficient manner.
The CAN (Controller Area Network) is an ISO (International Organization for Standardization) defined serial communications bus originally developed during the late 1980's for the automotive industry. Its basic design specification called for a high bit rate, high immunity to electrical interference and an ability to detect any errors produced. Due to these features, the CAN serial communications bus has become widely used throughout many industries, including the automotive, manufacturing and aerospace industries.
The CAN communications protocol describes the method by which information is passed between devices. It conforms to the Open Systems Interconnection (OSI) model which is defined in terms of layers. Each layer in a device appears to communicate with the same layer in another device. Actual communication is between adjacent layers in each device and the devices are connected only by the physical medium via the physical layer of the model. The CAN architecture defines the lowest two layers of the model: the data link and physical layers. The application levels are linked to the physical medium by the layers of various emerging protocols, dedicated to particular industry areas plus any number of proprietary schemes defined by individual CAN users. One example of an industry-standard CAN-based protocol is Allen-Bradley's DEVICEnet, designed for the networking of PLCs and intelligent sensors.
The physical medium used in connection with CAN consists of a twisted-pair with appropriate termination. In the basic CAN specification, it has a transmission rate of up to 250 KBaud while full CAN runs at 1 MBaud.
The physical and data link layers will normally be transparent to the system designer and are included in any component that implements the CAN protocols. There are some microcontrollers with integral CAN interfaces, for example, the 8051-compatible Siemens C505C processor and the 16-bit SAB-C167CR. The 81C91 is a standalone CAN controller which directly interfaces to many microcontrollers. The connection to the physical medium can be implemented with discrete components or with the 82C250 integrated circuit, or other similar circuits/devices. Standalone CAN controllers are also available from Siemens and a few other providers.
FIG. 1 depicts the CAN frame format. The CAN bus offers variable frame lengths with 0 to 8 octets of useful data, programmable gross transmission rates of up to 1 MBit/s at a 40 meter segment length (the transmission rate is reduced at greater segment lengths due to fixed bit times) and message-based addressing. Message-based addressing refers to a situation where a network station is not assigned a network-wide address that serves as a destination address in a transmission process (e.g., the Media Access Control (MAC) addresses on Ethernet). Instead, each message includes a content-related identifier used by each station to select messages that each respective station is intended to receive. Since, from an application perspective, the messages can be viewed as CAN objects stored in the CAN hardware, either received or to be transmitted, the identifiers used are also referred to as “CAN Object Identifiers” (COB IDs). COB IDs are typically 11 bits long for standard CAN, or 29 bits long in the case of extended CAN. Intelligent CAN controllers, which are standard today (e.g., the CAN interface of the 80C167 microcontroller or the Intel 82527 CAN controller), are capable of simultaneously configuring various transmit and receive IDs in their hardware buffers, the actual transmit or receive procedure of which is handled without involving a processor. Together, in conjunction with excellent error detection and handling procedures, the CAN bus achieves an atomic multicast of the transmitted message.
The employed COB ID of a message includes a priority: the lower the COB ID, the higher the priority of the message. The designated priority can, thus, be used for processes such as bus arbitration, i.e., to resolve access conflicts in case of simultaneous transmission requests by different nodes. In contrast to otherwise customary procedures, the conflict is resolved during transmission without any of the messages being corrupted or lost. Instead of corrupting or losing any of the messages, the message with the highest priority is automatically provided to the CAN bus by using so-called dominant (logic 0) and recessive (logic 1) levels. For the lower priority messages that are set aside in favor of the higher priority message, the respective nodes independently attempt to re-transmit their message at the next possible instant.
Since a COB ID is normally assigned according to the content-related purpose of the transmitted data (e.g., rotational speed of the front left wheel) and not to the transmitting or receiving node, two different nodes are prohibited from simultaneously transmitting a CAN packet with the same COB ID. Within the CAN protocol this is not permitted, since the two messages are superimposed and would result in a non-defined, or at least a faulty, state on the bus.
It has been known to use existing TCP/IP stacks (e.g., under PC/Windows NT) and makes the CAN bus appear as an Ethernet. Accordingly, Ethernet frames, which are typically transferred to an Ethernet driver, are transported in pieces via the CAN bus.